use crate::core::control::center::Center;
use std::env;
use crate::core::control::config::Config;

/// 负责命令解析以及执行
pub fn start(args: Vec<String>) {
    let current_dir_buf = env::current_dir().unwrap();
    let current_dir = current_dir_buf.to_str().unwrap();
    // 命令解析 todo need append command

    let mut read_path = "main.yuzu".to_string();
    let mut debug = false;

    if !args.is_empty() {
        for i in 0..args.len() {
            match args[i].as_str() {
                "--from" => {
                    if i + 1 < args.len() {
                        read_path = String::from(&args[i + 1]);
                    } else {
                        panic!(" command err : --from [null]");
                    }
                }
                "--debug" => {
                    debug = true;
                }
                "--target" => {
                    println!("developing ...")
                }
                _ => {}
            }
        }
    }

    // 获取到配置并创建控制中心
    let config = Config::new(debug, current_dir);
    let mut center = Center::new(config);
    // 开始执行
    center.run(&read_path);
}